#define _CRT_SECURE_NO_WARNINGS
//#include<stdio.h>
//int main()
//{
//	int i = 2;
//	int n = 1;
//	int m = 0;
//	while (i <= 100)
//	{
//		while (n < i)
//		{
//			if (i % n == 0)
//				continue;
//			else
//			{
//				m = 1;
//			}
//		}
//		if (m == 1)
//		{
//			printf("%d ",i);
//		}
//		i++;
//	}
//	return 0;
//#include <stdio.h>
//#include <stdbool.h>
//
//void sieve_of_eratosthenes() {
//    bool is_prime[101];
//    for (int i = 0; i < 101; i++) {
//        is_prime[i] = true;
//    }
//    is_prime[0] = is_prime[1] = false;
//    for (int i = 2; i * i <= 100; i++) {
//        if (is_prime[i]) {
//            for (int j = i * i; j <= 100; j += i) {
//                is_prime[j] = false;
//            }
//        }
//    }
//    for (int i = 0; i <= 100; i++) {
//        if (is_prime[i]) {
//            printf("%d ", i);
//        }
//    }
//}
//
//int main() {
//    sieve_of_eratosthenes();
//    return 0;
//}
//#include<stdio.h>
//int main()
//{
//	int n, k, a;
//	int age = 0;
//	scanf("%d %d %d",&n,&k,&a);
//	if (n <= 100 && k <= 100 && a <= 100)
//	{
//		age = a;
//		while (n != 1)
//		{
//			age += 2;
//			n--;
//		}
//		printf("%d\n", age);
//		return 0;
//	}
//}
//#include<stdio.h>
//int age(int n, int k, int a)
//{
//	if (n == 1)
//		return a;
//	else
//		return (n - 1) * 2 + a;
//}
//int main()
//{
//	int n, k, a;
//	scanf("%d %d %d",&n,&k,&a);
//	if (n <= 100 && k <= 100 && a <= 100)
//	{
//		int r = age(n, k, a);
//		printf("%d",r);
//	}
//	return 0;
//}
//#include<stdio.h>
//int jc(int n)
//{
//	if (n == 0)
//		return 1;
//	else
//	{
//		return jc(n - 1) * n;
//	}
//}
//int main()
//{
//	int n;
//	scanf("%d", &n);
//	int r = jc(n);
//	printf("%d\n",r);
//	return 0;
//}
//#include<stdio.h>
//char hanoi(int n)
//{
//
//}
//int main()
//{
//	int n;
//	scanf("%d",&n);
//	if (n <= 5)
//	{
//
//	}
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	int a[10];
//	int b[10];
//	for (int i = 0; i < 10; i++)
//	{
//		scanf("%d",&a[i]);
//	}
//	for (int i = 0; i < 10; i++)
//	{
//		scanf("%d", &b[i]);
//	}
//	int m = 0;
//	int n = 0;
//	int j = 0;
//	for (int l = 0; l < 10; l++)
//	{
//		if (a[l] > b[l])
//		{
//			m+=1;
//		}
//		else if (a[l] == b[l])
//		{
//			n+=1;
//		}
//		else
//			j+=1;
//	}
//	printf("%d %d %d\n",m,n,j);
//	if (m > j)
//	{
//		printf("a>b\n");
//	}
//	else if (m == j)
//	{
//		printf("a=b\n");
//	}
//	else
//		printf("a<b\n");
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	double score[10];
//	double sum = 0;
//	for (int i = 0; i < 10; i++)
//	{
//		scanf("%lf", &score[i]);
//	}
//	for (int j = 0; j < 10; j++)
//	{
//		sum += score[j];
//	}
//	sum /= 10.0;
//	printf("%.2lf\n",sum);
//	return 0;
//}
//#include<stdio.h>
//int mian()
//{
//
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	int arr[3][4];
//	int i = 0;
//	int j = 0;
//	int max = 0;
//	for (i = 0; i < 3; i++)
//	{
//		for (j = 0; j < 4; j++)
//		{
//			scanf("%d",&arr[i][j]);
//		}
//	}
//	max = arr[0][0];
//	for (i = 0; i < 3; i++)
//	{
//		for (j = 0; j < 4; j++)
//		{
//			if (max < arr[i][j])
//				max = arr[i][j];
//		}
//	}
//	printf("%d\n",max);
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	double arr[10];
//	int i = 0;
//	double sum = 0;
//	double max = 0;
//	double min = 0;
//	for (i = 0; i < 10; i++)
//	{
//		scanf("%lf",&arr[i]);
//	}
//	for (i = 0; i < 10; i++)
//	{
//		sum += arr[i];
//	}
//	sum /= 10;
//	max = arr[0];
//	for (i = 0; i < 10; i++)
//	{
//		if (max < arr[i])
//			max = arr[i];
//	}
//	min = arr[0];
//	for (i = 0; i < 10; i++)
//	{
//		if (min > arr[i])
//			min = arr[i];
//	}
//	printf("%.2lf %.2lf %.2lf\n",sum,max,min);
//	return 0;
//}
//#include<stdio.h>
//#include<math.h>
//#define S(a,b,c)((a+b+c)/2)
//#define AREA(a, b, c) (sqrt(S(a, b, c) * (S(a, b, c) - a) * (S(a, b, c) - b) * (S(a, b, c) - c)))int main()
//int main ()
//{
//	double s = 0;
//	int a, b, c;
//	double area = 0;
//	scanf("%d %d %d",&a,&b,&c);
//	area = AREA(a,b,c);
//	printf("%.3lf",area);
//	return 0;
//}
//#include <stdio.h>
//#include <math.h>
//
//#define S(a, b, c) ((a + b + c) / 2.0)
//#define AREA(a, b, c) (sqrt(S(a, b, c) * (S(a, b, c) - a) * (S(a, b, c) - b) * (S(a, b, c) - c)))
//
//int main() {
//	double a, b, c;
//	scanf("%lf %lf %lf", &a, &b, &c);
//	double area = AREA(a, b, c);
//	printf("%.3lf\n", area);
//	return 0;
//}
//#include<stdio.h>
//#define LEAP_YEAR(y)()
//int main()
//{
//	int y;
//	scanf("%d",&y);
//
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	int* p1;
//	int* p2;
//	int a = 0;
//	int b = 0;
//	scanf("%d %d", &a, &b);
//	p1 = &a;
//	p2 = &b;
//	int c = 0;
//	if (*p1 < *p2)
//	{
//		c = *p1;
//		*p1 = *p2;
//		*p2 = c;
//	}
//	printf("%d %d\n",*p1,*p2);
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	int a, b, c;
//	scanf("%d %d %d",&a,&b,&c);
//	int* p1;
//	int* p2;
//	int* p3;
//	p1 = &a;
//	p2 = &b;
//	p3 = &c;
//	int d = 0;
//	if (*p1 < *p2)
//	{
//		d = *p1;
//		*p1 = *p2;
//		*p2 = d;
//	}
//	if (*p1 < *p3)
//	{
//		d = *p1;
//		*p1 = *p3;
//		*p3 = d;
//	}
//	if (*p2 < *p3)
//	{
//		d = *p2;
//		*p2 = *p3;
//		*p3 = d;
//	}
//	printf("%d %d %d",*p1,*p2,*p3);
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//	char a[14] = { "I love China!" };
//	int n;
//	scanf("%d", &n);
//	a = a + n;
//	printf("%s\n", a);
//	return 0;
//}
//#include<stdio.h>
//int main()
//{
//    struct student {
//        int num;
//        char name[20];
//        char sex;
//        int age;
//    };
//    int n = 0;
//    scanf("%d",&n);
//    struct student students[n];
//    if (n <= 20)
//    {
//        for(int i = 0;i<3;i++)
//            scanf("%d %s %s %d" )
//    }
//	return 0;
//}
#include <stdio.h>
#include <math.h>

int main() {
    double pi = 0;
    int n = 0;
    double term = 1;

    while (fabs(term) >= 1e-6) {
        pi += term;
        n++;
        term = (n % 2 == 0) ? 1.0 / (2 * n + 1) : -1.0 / (2 * n + 1);
    }

    pi *= 4;
    printf("%.6lf\n", pi);

    return 0;
}